package org.jupiter.blog.service.service;

import org.jupiter.blog.api.dto.JupiterConfigDTO;

import java.util.List;

public interface JupiterConfigService {

	/**
	 * 创建配置
	 */
	void createConfig(JupiterConfigDTO dto);

	/**
	 * 根据UUID获取配置
	 */
	JupiterConfigDTO getById(String uuid);

	/**
	 * 更新配置
	 */
	void updateConfig(String uuid, JupiterConfigDTO dto);

	/**
	 * 删除配置
	 */
	void deleteConfig(String uuid);

	/**
	 * 分页查询配置列表
	 */
	List<JupiterConfigDTO> getByPage(JupiterConfigDTO queryDTO);

	/**
	 * 获取配置总数
	 */
	long getCount(JupiterConfigDTO queryDTO);

	/**
	 * 根据配置键获取配置
	 */
	JupiterConfigDTO getByName(String configName);

	/**
	 * 刷新配置缓存
	 */
	void refreshCache();

	/**
	 * 批量插入配置
	 */
	void insertBatch(List<JupiterConfigDTO> dtoList);

	/**
	 * 检查配置键是否存在
	 */
	boolean existsByName(String configName);
}
